Network proxy servers are networked applications designed to assist client applications interact efficiently with remote servers. Typically, proxy servers are implemented as user-level applications running on dedicated, high-performance networked servers. For better performance, the same functionality can be implemented in a module inside the server's kernel, or in a networked appliance. SOCKS servers represent an early example of network proxies. Web proxy caches (see, e.g., Ari Lutonen, Web Proxy Servers, Prentice Hall, 1997) are probably the best known example of network proxies.
Web proxy caches are designed to improve the performance of client browsers and user experience by reducing page download latencies. Client browsers are configured to request content from the web proxy cache. If the proxy has a local copy of the requested document, it returns the document to the client. Otherwise, it forwards the client request to the origin server and forwards the response to the client. The proxy may store a copy of the forwarded document in the local cache (disk). Page download latencies are reduced because the latency of accessing the web proxy server across the enterprise or campus network is much lower than the latency of accessing the origin sever across the Internet. The higher the cache hit rate is, the more page download latencies are reduced. In order to achieve a high cache hit rate, proxy caches have to serve a large client population. Otherwise, the probability of getting a cache hit, i.e., requesting a document that was previously requested by another client, is relatively low. Cache hit rates can reach 50% for large proxy installations serving multiple institutions. In addition to reducing user-perceived latencies, proxies reduce the load on the origin web servers.
Besides improving user experience, web proxy servers provide clients with indirect Internet access. As a result, client machines are protected from a wide range of Internet-originated attacks. In such configurations, using the web proxy is the only way for accessing the Internet: all client machines are placed behind a firewall, which is configured to prevent clients from accessing servers outside the enterprise or campus intranet. The web proxy server is protected from Internet attacks using special host configurations and firewalls. The web proxy server is typically a single-purpose machine, which simplifies the firewall configuration: only HTTP traffic is allowed from/to the web proxy server.
Other networked applications, such as media players or email clients, were changed to take advantage of this proxy-based security architecture and use HTTP as a transport protocol. As a result, a significant amount of the client traffic is, or it can be, directed through the local web proxy. As bandwidth availability and client local cache increase, and more web sites use latency reduction technologies, such as Content Distribution Networks (CDN), the value of using web proxies as caches diminishes. However, the security-related benefits of using web proxies are increasingly obvious since application-level proxies are the only realistic method that enables deep inspection of the network traffic, i.e., HTTP payload for web proxy servers.
Independently, to assist resource-constraint mobile devices, a new category of application-level proxies was developed. Transcoding proxies, which assist PDA/smart phone browsers to display web content on small screens, are probably the most popular example in this category. In addition, web proxy caches provide more benefits to wireless clients than desktop clients because mobile clients have smaller local caches than desktop clients and wireless connections have higher latencies and lower bandwidth than wired LAN connections. More recently, transcoding proxies have been extended to adapt multimedia streams to the mobile client capabilities or to reduce the energy consumed to play the streams. In summary, it is expected that application-level proxies, in particular, HTTP proxies will play an increasingly important role in assisting resource constrained mobile wireless clients.
Reducing the energy consumed by mobile clients is a very important problem as battery capacity has not increased at the same rate as the performance of the device component over the past several years. Although significant technological improvements have reduced the power consumed by these components, most of these improvements reduce the performance of the components as well, or degrade other characteristics of the mobile system, such as responsiveness. At present, capabilities of mobile devices are significantly restricted by the capacity of their batteries and the power-related restrictions are not expected to disappear in the foreseeable future.
Using a web proxy to shape incoming WLAN traffic or transcoding and scheduling media streams in a power-friendly manner enable substantial savings in the energy consumed by the WLAN interface of a client or the mobile client device (see Marcel C Rosu et al., “PAWP: A Power Aware Proxy for Wireless LAN Clients”, WMCSA 2004, English Lake District, December 2-3 2004; and S. Mohapatra et al., “Integrated Power Management for Video Streaming to Mobile Handheld Devices,” In Proceedings of ACM Multimedia 2003.) These approaches are focused to one client running one application (web browser or media player) and there is no clear extension of these approaches to multiple applications and mobile clients.
In contrast, relatively little work has been done on supporting a collection of mobile devices as a group and optimize their usage of shared resources according to group policies. More specifically, there are no known techniques for power-aware scheduling of the shared WLAN bandwidth between the mobile clients, despite the fact that a significant fraction of the energy consumed by mobile clients is directly or indirectly communication-related. Unfortunately, efficiently scheduling WLAN traffic to enable significant energy savings requires more information about the client configuration, current state, application, and application payload than currently available.
Using transport- or network-level attributes, such as client IP address or TCP/UDP port number, to differentiate between users or applications, is difficult since the majority of the WLAN traffic consists of TCP packets carrying HTTP payloads, i.e. using TCP port 80. An increasing number of networked applications besides web browsers, such as multimedia streaming or email clients, use HTTP as this simplifies firewall configuration considerably; this trend is expected to continue. In addition, dynamic IP address allocation is the preferred method for managing the addresses of mobile WLAN clients, which makes even more difficult to use network/transport level attributes to differentiate between different applications/users on the WLAN. Therefore, there is a need to use application-level information to identify users and applications, which is, or could be made available to the network proxies assisting client applications. Unfortunately, not enough information on the current state of the mobile client, such as battery level, is made available at the application level. Therefore there is a need to enhance existing client protocols and applications to provide additional client information.
Provided that enough information on the configuration and current state of the mobile devices is collected, a need has been recognized in connection with providing a mechanism that controls the usage of shared resources, such as WLAN bandwidth, in a way that promotes energy savings in all the client devices under control. Without such a mechanism, existing techniques which were developed for one client device running one application, will conflict with each other and fail to enable the expected energy savings. Therefore, a need has been recognized in connection with optimizing energy usage among the mobile devices in a group according to predetermined group policies.